package com.hr.剑指offer.work1;

import java.util.*;

/**
 * @author 周恒哲
 * @date 2020/06/17
 **/
public class 面试题32_II_从上到下打印二叉树II {
    public List<List<Integer>> levelOrder(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        List<List<Integer>> res = new ArrayList<>();
        if (root != null) {
            queue.add(root);
        }
        while (!queue.isEmpty()) {
            List<Integer> ans = new ArrayList<>();
            for (int i = queue.size(); i >0; i--) {
                TreeNode node = queue.poll();//从首位置取元素并删除
                ans.add(node.val);
                if (node.left != null) {
                    queue.add(node.left);
                }
                if (node.right != null) {
                    queue.add(node.right);
                }
            }
            res.add(ans);
        }
        return res;
    }
}
